package com.eupmt.lab3.persistence.ibatis.dao;

import com.eupmt.lab3.domain.Usuari;
import com.ibatis.common.resources.Resources;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.client.DaoManagerBuilder;
import java.io.IOException;
import java.io.Reader;

/**
 *
 * @author sony
 */
public class UsuariDaoManager {

   protected static UsuariDaoManager instance = null;
   private UsuariDAO usuariDAO = null;

   public UsuariDaoManager() throws IOException {
      super();
      Reader readerDao = Resources.getResourceAsReader("com/eupmt/lab3/persistence/ibatis/daoConfig.xml");
      DaoManager daoManager = DaoManagerBuilder.buildDaoManager(readerDao);
      this.usuariDAO = (UsuariDAO) daoManager.getDao(UsuariDAO.class);
//        usuariDAO = new UsuariDAOImpl();
   }



   //Mètodes d'Usuari
   
   public void saveUsuari(Usuari usuari) throws Exception {
      usuariDAO.saveUsuari(usuari);
   }

   public void updateUsuari(Usuari usuari) throws Exception {
      usuariDAO.updateUsuari(usuari);
   }

   public void deleteUsuari(Usuari usuari) throws Exception {
      usuariDAO.deleteUsuari(usuari);
   }
   
   public Usuari getUsuariGranted(Usuari usuari) throws Exception {
      return usuariDAO.getUsuariGranted(usuari);
   }

   public Usuari getUsuariByLogin(String login) throws Exception {
      return usuariDAO.getUsuariByLogin(login);
   }

   
   
   
   
   public static UsuariDaoManager getInstance() throws IOException {
      if (instance == null) {
         instance = new UsuariDaoManager();
      }

      return instance;
   }
}
